/*
 * Copyright (c) 2024. hallele, Inc All rights reserved.
 */

package cn.hallele.ms.starter.web.framework.service;

import cn.hallele.infrastructure.metadata.io.User;
import cn.hallele.ms.starter.web.framework.bo.ActionOrder;
import cn.hallele.ms.starter.web.framework.context.ActionContext;

/**
 * hallele_mc_core
 *
 * @author anle5
 * @since 2024/12/24 0:19
 */
public interface ActionInitializeService {
    /**
     * 初始化上下文时获取用户信息的
     *
     * @return UserInfo
     */
    User getUserInfo();

    /**
     * 订单生成，需要掉订单服务生成订单
     *
     * @param context 上下文
     * @return 订单
     */
    ActionOrder createActionOrder(ActionContext context);

    /**
     * 取消订单
     *
     * @param context 上下文
     * @return 订单
     */
    ActionOrder cancelActionOrder(ActionContext context);

    /**
     * 完成订单
     *
     * @param context 上下文
     * @return 订单
     */
    ActionOrder completeActionOrder(ActionContext context);
}
